package br.com.gkarian.mydesk.services.financeiro.interfaces;

import java.util.List;

import br.com.gkarian.mydesk.model.Usuario;
import br.com.gkarian.mydesk.model.financeiro.Banco;
import br.com.gkarian.mydesk.model.financeiro.ContaBancaria;
import br.com.gkarian.mydesk.model.financeiro.TipoTransacao;
import br.com.gkarian.mydesk.model.financeiro.Transacao;

public interface FinanceiroServiceProxy {

	void cadastrarTransacao(Transacao transacao, Usuario usuario) throws Exception;
	Transacao carregarTransacao(Integer id) throws Exception;
	void atualizarTransacao(Transacao transacao, Usuario usuario) throws Exception;
	List<Transacao> listarTransacoesPorUsuario(Usuario usuario) throws Exception;
	void removerTransacao(Transacao transacao, Usuario usuario) throws Exception;
	
	Banco cadastrarBanco(Banco banco) throws Exception;
	Banco carregarBanco(Integer id) throws Exception;
	void atualizarBanco(Banco banco) throws Exception;
	List<Banco> listarBancos() throws Exception;
	void removerBanco(Banco banco) throws Exception;
	
	void cadastrarTipoTransacao(TipoTransacao tipoTransacao, Usuario usuario) throws Exception;
	TipoTransacao carregarTipoTransacao(Integer id) throws Exception;
	void atualizarTipoTransacao(TipoTransacao tipoTransacao) throws Exception;
	List<TipoTransacao> listarTipoTransacaoPorUsuario(Usuario usuario) throws Exception;
	void removerTipoTransacao(TipoTransacao tipoTransacao) throws Exception;
	Usuario recuperarUsuarioParaCadastroTransacao(Usuario usuario) throws Exception;
	
	ContaBancaria cadastrarContaBancaria(ContaBancaria contaBancaria,
			Integer bancoId, Usuario logado) throws Exception;
	List<ContaBancaria> listarContasBancarias(Usuario usuario) throws Exception;
	ContaBancaria carregarContaBancaria(Integer contaBancariaId) throws Exception;
	void removerContaBancaria(ContaBancaria contaBancaria) throws Exception;
	void removerContaBancaria(Integer id) throws Exception;
	void atualizarContaBancaria(ContaBancaria contaBancaria, Integer bancoId, Usuario usuario) throws Exception;
	void atualizarContaBancaria(ContaBancaria contaBancaria) throws Exception;
	String atualizarSaldoContaBancaria(Integer idContaBancaria, Usuario usuario) throws Exception;

	
}
